About:

This is a straightforward chart that displays latencies between each of the 18 "non-exotic" regions of AWS (China regions and Gov-Cloud are not included). Each cell in the chart represents the latency from a source EC2 instance in a region list on the Y-axis pinging a target EC2 instance in a region list on the X-Axis.

How this works:

Every three minutes, a scheduled task triggers a script that launches a series of "ping" commands on each of the 18 nodes, collecting the average latency times over five seconds to each of the 18 nodes (including itself).

Each EC2 instance is a member of a Min-1/Max-1 autoscaling group for self-healing and is located in a private subnet of a VPC. These VPCs are connected via VPC Peering and all ping traffic is private: at no point does any traffic traverse the public internet.

The output of each ping series is captured and sent to an Aurora MySQL database table where the most recent result of the ping result is stored and subsequently displayed on the table. The results are also sent to a historical trable that stores the 180-second results for 24 hours.

Every hour another scheduled task triggers, taking the average of the last 60 minutes of results and inserting them into a hourly table where the data is stored for 7 days.

Once a day, a final task run, taking the average latency over a 24 hour period and storing them in a daily table that stores the data for one year.

Finally, an Autoscaling Group of web servers running PHP 7.2 and jpgraph serve the data through an application load balancer to latency.bluegoat.net, with DNS lookups handled by Route53.